Method and system for verifying telephone numbers across service providers

ABSTRACT

A system for verifying and updating a telephone number across service providers. After dialing a telephone number, a contact name and a timestamp in a central repository is compared with a contact name and a timestamp in a storage device. If the contact name in the central repository does not match the contact name in the storage device and the timestamp in the central repository is not more recent than the timestamp in the storage device, a determination is made as to whether the central repository indicates that a new telephone number is associated with the contact name. If a new telephone number is indicated for the contact name, the central repository is queried for the new telephone number. In response to the new telephone number being found, the dialed telephone number is routed to the new telephone number. Also, the storage device is updated with the new telephone number.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to an improved communicationdevice. More specifically, the present invention is directed to acomputer implemented method and computer usable program code in acommunication device for automatically verifying and updating telephonenumbers across service providers.

2. Description of the Related Art

Innovations in communications technologies have made a wide range ofenhanced communications services available to a user. For example, auser may dial a telephone number at the press of a key by usingspeed-dialing, retrieve a telephone number for a missed call, view atelephone number of an incoming call on a display by using calleridentification (caller ID), and send or retrieve a voice message byusing voice mail. A communications provider often provides theseservices through a network such as an intelligent services network (ISN)that is privately owned but that works in conjunction with the publicswitched telephone network (PSTN). These services also may be offered bya dedicated device, such as a telephone with advanced electronics or atelephone answering machine, located at the user's premises.

However, one problem associated with current communications technologiesis that there is no way for a user of a communication device to knowwhether a dialed telephone number is correct for an intended party priorto making the connection with the dialed telephone number. This isespecially true in a situation where the user of the communicationdevice utilizes a different service provider than the intended partybecause service providers are not fully integrated to allow cross-accessto database information by non-customers. Since there is no way toverify that the dialed number is correct, or even currently active,prior to making the connection, the calling party must wait for theservice provider to connect the call as dialed and then attempt toascertain whether the dialed number is actually associated with theintended party. This process of ascertaining whether the dialed numberis correct or not may be tedious and time consuming. In addition, thecalling party may be responsible for paying a completed call chargeand/or roaming fees to make this determination without any assurancethat the dialed number is correct.

Therefore, it would be beneficial to have an improved computerimplemented method and computer usable program code for automaticallyverifying and updating a telephone number across service providers.

SUMMARY OF THE INVENTION

Illustrative embodiments provide a computer implemented method andcomputer usable program code for automatically verifying and updating atelephone number across service providers. In response to a telephonenumber being dialed, a determination is made as to whether a contactname in a central repository associated with the dialed telephone numbermatches a contact name in a storage device associated with the dialedtelephone number and a timestamp in the central repository associatedwith the dialed number is more recent than a timestamp in the storagedevice associated with the dialed number. If the contact name in thecentral repository does not match the contact name in the storage deviceand if the timestamp in the central repository is not more recent thanthe timestamp in the storage device, a determination is made as towhether the central repository indicates that a new telephone number isassociated with the contact name to automatically verify the dialedtelephone number. If the central repository indicates that a newtelephone number is associated with the contact name, the centralrepository is queried for the new telephone number. In response to thenew telephone number being found in the central repository, the dialedtelephone number is routed to the new telephone number. Also, thestorage device is updated with the new telephone number associated withthe contact name.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 is a pictorial representation of a communication system in whichillustrative embodiments may be implemented;

FIG. 2A is a pictorial representation of a communication device in whichillustrative embodiments may be implemented;

FIG. 2B is a block diagram of a communication device in accordance withan illustrative embodiment; and

FIG. 3 is a flowchart illustrating an exemplary process forautomatically verifying and updating telephone numbers across serviceproviders in accordance with an illustrative embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference now to the figures, FIG. 1 depicts a pictorialrepresentation of a communication system in which illustrativeembodiments may be implemented. Communication system 100 is a network ofcomputers and other devices in which illustrative embodiments may beimplemented. Communication system 100 may include a plurality ofcommunication networks. A communication network is a network thatincludes all components necessary to provide communication services to aplurality of clients.

Communication system 100 contains network 110, which is the medium usedto provide communication links between the various computers and otherdevices coupled together within communication system 100. Network 110may include several types of connections, such as wire, wirelesscommunication links, or fiber optic cables. However, for thisillustrative embodiment depicted in FIG. 1, wireless communication linksare emphasized.

In the depicted example of FIG. 1, server 120 and server 130 are coupledto network 110 by wire or wireless communication links. Servers 120 and130 may, for example, be communication servers with high speedconnections to network 110. Also, server 120 may represent a pluralityof communication servers located within a local area network (LAN) or awide area network (WAN). Similarly, server 130 may represent a pluralityof communication servers located within a LAN or WAN. Further,communication server 120 may, for example, reside within one cellulartelephone service provider (SP) network and communication server 130 mayreside in another cellular telephone SP network. In another illustrativeembodiment, communication server 120 may, for example, independentlyprovide communication services for a plurality of cellular telephone SPnetworks.

Communication devices 140, 150, 160, and 170, along with storage unit180, also are coupled to network 110 via wire or wireless links. Inaddition, communication devices 140 and 150 may, for example, be clientsto communication server 120. Likewise, communication devices 160 and 170may be clients to communication server 120. In this illustrativeexample, communication device 130 is a personal computer using aconventional land line communication link and communication devices 140,150, and 160 are cellular telephones relying on wireless communicationlinks.

However, it should be noted that besides being personal computers andcellular telephones, the communication devices shown in FIG. 1 may, forexample, be personal digital assistants (PDAs), handheld computers,laptop computers, larger data processing systems, other communicationservers, or any combination thereof. Furthermore, illustrativeembodiments are not restricted to the above-listed communicationdevices. Illustrative embodiments may utilize any communication devicethat is capable of accomplishing processes of illustrative embodiments.

Storage unit 180 represents any type of storage device that is capableof storing data in a structured and/or unstructured format. Also,storage unit 180 may, for example, be a repository. A repository is acentral place where multiple databases may be located for distributionover a network.

In this particular example of FIG. 1, storage unit 180 is a centralrepository that stores customer information for a plurality of cellulartelephone SP network databases, which are synchronized with storage unit180, for distribution over network 110. This synchronization of storageunit 180 with the plurality of cellular telephone SP network databasesis the basis for providing a central data repository of customerinformation for a plurality of cellular telephone SPs. Thus, storageunit 180 may contain information, such as, for example, customer names,telephone numbers, and customer identification numbers, for theplurality of SPs. In addition, storage unit 180 may store indicators,such as, for example, when a user changes telephone numbers, or when atelephone number is no longer in service, or when a telephone number iscurrently under repair. Also, storage unit 180 may store an indicatorfor when a user changes SPs. However, it should be noted that storageunit 180 may contain any data and indicators necessary for processes ofillustrative embodiments to automatically verify and update telephonenumbers across SPs in real time.

Additionally, communication system 100 may, for example, includeadditional servers, clients, storage units, and other devices not shown.Moreover, communication system 100 may, for example, represent theInternet with network 110 representing a worldwide collection ofnetworks and gateways that use the transmission controlprotocol/internet protocol (TCP/IP) suite of protocols to communicatewith one another. Internet protocol (IP) telephony is the two-waytransmission of voice over a packet-switched IP network, which is partof the TCP/IP suite of protocols. The terms “IP telephony” and “voiceover IP” (VoIP) are synonymous. VoIP is a telephone service that usesthe Internet as a global telephone network. At the heart of the Internetis a backbone of high-speed data communication lines between major nodesor host computers, consisting of thousands of commercial, government,educational and other computer systems that route data and messages.

It should be appreciated by those of ordinary skill in the art that FIG.1 is only intended as an exemplary illustration and is not intended asan architectural limitation for illustrative embodiments. Further, itshould be appreciated by those of ordinary skill in the art that eventhough the example of FIG. 1 depicts a telephone network, illustrativeembodiments may, for example, be utilized in an e-mail network, instantmessaging network, or any other network system that requires connectiondata, such as e-mail addresses, instant messaging screen names, and thelike, stored in a storage device and used to connect network users withone another. Thus, a user may utilize illustrative embodiments toautomatically verify and update e-mail addresses and instant messagingscreen names across SPs.

Illustrative embodiments provide a computer implemented method andcomputer usable program code in a communication device for automaticallyverifying and updating a telephone number for a calling party prior toconnecting a call across SPs. Alternatively, illustrative embodimentsmay automatically verify and update a telephone number for the callingparty in real-time while an SP is connecting the call. In response to atelephone number being dialed manually by a user using the communicationdevice or automatically by the communication device, itself, a telephonenumber verification unit makes a determination as to whether a contactname in a central repository associated with the dialed telephone numbermatches a contact name in a storage device associated with the dialedtelephone number. The central repository, such as storage unit 180,stores customer data for a plurality of cellular telephone SP networkdatabases for distribution over a network, such as network 110. Thecentral repository is synchronized with the plurality of SP databases toprovide accurate, up-to-date data across the plurality of SPs.

However, it should be noted that illustrative embodiments may notrequire that the contact name in the central repository exactly matchthe contact name in the storage device. For example, the contact name inthe central repository may include a first, middle, and last name,whereas the contact name in the storage device may only include thefirst and last name, which is not an exact match but is a “strongindication” of a match nonetheless. Furthermore, the contact name in thestorage device may, for example, include a “nickname” or otherreference, which also may be used as a strong indication of a match withthe contact name in the central repository. Moreover, illustrativeembodiments may, for example, automatically update the contact nicknamein the storage device with the proper full name from the centralrepository when the calling party is connected to the called contactnickname. This automatic name updating process may be performed on thefly in the background so the calling party is not aware of the updateduring the connection. Further, the telephone number verification unitmay, for example, send an alert message via a display screen to thecalling party, or user, during or after the connection is terminated tonotify the user of the name update and request confirmation to save theupdated name in the storage device.

In addition to determining whether the contact name in the centralrepository matches the contact name in the storage device, the telephonenumber verification unit makes a determination as to whether a timestampin the central repository associated with the dialed number is morerecent than a timestamp in the storage device associated with the dialednumber. The timestamp in the central repository is a date and time whena telephone number is activated or changed by the SP and is stored inthe central repository with the telephone number. The timestamp in thestorage device is a date and time when the user manually, or thecommunication device automatically, adds a telephone number to thestorage device and is stored in the storage device with the telephonenumber. The telephone number verification unit compares the storedcentral repository timestamp with the stored storage device timestamp todetermine which is more recent.

If the contact name in the central repository does not match the contactname in the storage device and the timestamp in the central repositoryis not more recent than the timestamp in the storage device associatedwith the dialed number, the telephone number verification unit makes adetermination as to whether the central repository indicates that a newtelephone number is associated with the contact name to automaticallyverify the dialed telephone number is correct. If the central repositoryindicates that a new telephone number is associated with the contactname, the telephone number verification unit queries the centralrepository for the new telephone number. Then, in response to findingthe new telephone number in the central repository, the telephone numberverification unit routes the dialed telephone number to the newtelephone number. In addition to routing the dialed telephone number tothe new telephone number, the telephone number verification unit mayupdate the storage device with the new telephone number associated withthe contact name.

Also, if the new telephone number is not currently in service, thetelephone number verification unit may, for example, send an alertmessage, such as “Telephone number not currently in service,” to theuser without connecting the call. However, it should be noted thatillustrative embodiments are not limited to the above-mentioned alertmessages to the user. Illustrative embodiments may utilize any type ofalert message, such as, for example, “Telephone number is changed”,“Account is inactive/closed”, or “Service provider has changed”. Also,it should be noted that the user may customize or configure the alertmessages. Furthermore, the telephone number verification unit may, forexample, dial telephone numbers stored in the storage device on apredetermined periodic basis to automatically verify and update thetelephone numbers in the background. The telephone number verificationunit may, for example, perform this periodic process of automaticallyverifying and updating during non-peak hours.

A user utilizing a communication device that includes an illustrativeembodiment will decrease time, frustration, and money spent trying toconnect to out-of-date or out-of-service telephone numbers. Thus, auser's satisfaction is increased by utilizing illustrative embodimentsbecause telephone numbers are automatically verified and updated. Thisautomatic process of verifying and updating telephone numbers may beperformed across a plurality of SPs because illustrative embodimentsutilize the central repository, which stores synchronized data fromdatabases of the plurality of SPs.

With reference now to FIG. 2A, a pictorial representation of acommunication device is depicted in which illustrative embodiments maybe implemented. In the illustrative example of FIG. 2A, communicationdevice 200 is a cellular telephone. However, illustrative embodimentsmay utilize any type of communication device to accomplish processes ofillustrative embodiments. Communication device 200 may, for example, becommunication device 150 in FIG. 1.

Communication device 200 includes display 202 to present textual andgraphical information to a user. Display 202 may be a known displaydevice, such as a liquid crystal display (LCD). Communication device 200also includes keypad 204, speaker 206, and microphone 208. Keypad 204may be utilized to enter telephone numbers, user identificationinformation, and commands for interacting with the interface. Audiofeedback may be presented via speaker 206. Microphone 208 may be usednot only for voice communication, but also for entering specific voicecommands for voice actuated functions. Further, communication device 200uses antenna 210 to establish wireless communication links with anetwork, such as, for example, network 110 in FIG. 1. However, it shouldbe noted that even though antenna 210 is shown as an external antenna inFIG. 2A, antenna 210 may represent an internal antenna as well.

With reference now to FIG. 2B, a block diagram of a communication deviceis depicted in accordance with an illustrative embodiment. In theillustrative example of FIG. 2B, communication device 200 utilizes a busarchitecture, such as bus 212. Bus 212 may include one or more buses. Inaddition, bus 212 may be implemented using any type of communicationfabric or architecture that provides for a transfer of data between thedifferent components or devices coupled to bus 212.

Communication device 200 includes processor unit 214, memory unit 216,storage unit 218, display adapter 220, keypad adapter 222, audio adapter224, wireless link 226, and telephone number verification unit 228connected to bus 212. However, it should be noted that communicationdevice 200 is only shown for exemplary purposes and is not meant as anarchitectural limitation to illustrative embodiments. Communicationdevice 200 may include more or fewer components as necessary to performprocesses of illustrative embodiments.

Processor unit 214 provides the data processing capabilities ofcommunication device 200. An operating system runs on processor unit 214and coordinates and provides control of various components withincommunication device 200. In addition, software applications executingon communication device 200 may run in conjunction with the operatingsystem.

Storage unit 218 is a non-volatile memory or storage device that may,for example, be configured as read only memory (ROM) and/or flash ROM toprovide the non-volatile memory for storing the operating system and/oruser data. Storage unit 218 stores instructions or computer usableprogram code for the operating system and applications. The instructionsare loaded into memory unit 216 for execution by processor unit 214.Processor unit 214 performs processes of illustrative embodiments byexecuting the computer usable program code that is loaded into memoryunit 216.

The user data stored in storage unit 218 may, for example, include datainputted by the user, such as contact names, addresses, descriptions,telephone numbers, e-mail addresses, instant messaging screen names, andthe like. However, it should be noted that the user may enablecommunication device 200 to automatically store contact informationwithin storage unit 218 when a contact connects with communicationdevice 200. A contact is a person or entity that a user wishes tocommunicate with via communication device 200. Also, these contactnames, telephone numbers, e-mail addresses, and instant messaging screennames may, for example, be placed within a contact list. A contact listis a list of all the contacts and associated information the user inputsand stores, or communication device 200 automatically stores, withinstorage unit 218.

Alternatively, a contact list may only contain a subset of all thecontacts stored within storage unit 218, such as, for example, a family,friends, co-workers, businesses, and general contact list. As a result,storage unit 218 may contain one or more contact lists for communicationdevice 200. Further, communication device 200 may store this user datain a central repository, such as, for example, storage 180 in FIG. 1, inaddition to or instead of storage unit 218.

Furthermore, this stored user data, such as the one or more contactlists, may be automatically forwarded to a new SP when the user switchesto the new SP from a previous SP. In addition, the user may, forexample, contact the SP's customer support service to specify whichcontacts within the one or more contact lists may receive information,such as the user's new telephone number, when a specified contact fromthe one or more contact lists calls the old telephone number.

Wireless link 226 may, for example, utilize shortwave, high frequency,ultra high frequency, microwave, wireless fidelity (Wi-Fi), Bluetooth,or any other wireless communication means to establish a wirelesscommunication link for communication device 200. Communication device200 also may rely on wireless application protocol (WAP) forfacilitating communications. Wireless application protocol is a standardfor providing wireless phones, pagers and other handheld devices withsecure access to e-mail and text-based Web pages. Wireless applicationprotocol provides a complete environment for wireless applications thatincludes a wireless counterpart of TCP/IP and a framework for telephonyintegration such as call control and phone book access. Wirelessapplication protocol features the wireless markup language (WML), whichwas derived from Phone.com's handheld device markup language (HDML) andis a streamlined version of hypertext markup language (HTML) for smallscreen displays. Also, wireless application protocol uses WMLScript, acompact JavaScript-like language that runs in limited memory.Additionally, wireless application protocol supports handheld inputmethods such as keypad and voice recognition.

Wireless application protocol runs over all the major wireless networksnow in place. Also, wireless application protocol is device independent,requiring only a minimum functionality in the unit so that it may beused with a myriad of cellular phones and handheld devices. However, itshould be pointed out that wireless application protocol has beendescribed for illustrative purposes, and other wireless protocols may beused to implement illustrative embodiments.

Communication device 200 uses telephone number verification unit 228 tocompare the stored user data within storage unit 218 with storedcellular telephone SP network data within the central repository.Telephone number verification unit 228 compares the stored user datawith the stored central repository data to verify or confirm that thestored user data, such as a telephone number, is correct and currentlyin service for an associated contact name prior to connecting the callor in real time during call connection. Moreover, communication device200 may use telephone number verification unit 228 to automaticallycompare the stored user data with the stored central repository data ona predetermined periodic basis, such as, for example, weekly or monthly,during non-peak cellular telephone SP network hours in the background sothe user is not aware of this process. Also, in addition toautomatically verifying telephone numbers, telephone number verificationunit 228 may automatically update the stored user data, such as atelephone number associated with a contact name, if data provided by thecentral repository is more up-to-date than the stored user data withinstorage unit 218. It should be noted that the process of automaticallyupdating the stored user data may also be performed in the background aswell.

Further, it should be noted that a user of communication device 200 mayenable and disable telephone number verification unit 228 independentlyof other communication device 200 functions and features. Furthermore,it should be noted that telephone number verification unit 228 may beimplemented entirely as software, hardware, or as a combination ofsoftware and hardware components. In addition, telephone numberverification unit 228 may, for example, come pre-configured to connectwith a plurality of cellular telephone SP network databases in the eventthat telephone number verification unit 228 is unable to connect withthe central repository. Moreover, even though FIG. 2B depicts thatcommunication device 200 includes telephone number verification unit228, telephone number verification unit 228 may, for example, residewithin a cellular telephone SP network or an independent remote site.

Those of ordinary skill in the art will appreciate that the hardware inFIG. 2A and FIG. 2B may vary depending on implementation of illustrativeembodiments. Other internal hardware or peripheral devices may be usedin addition to or in place of the hardware depicted in FIG. 2A and FIG.2B. For example, communication device 200 also may include a voicerecognition system in order to perform functions activated by user voicecommand.

With reference now to FIG. 3, a flowchart illustrating an exemplaryprocess for automatically verifying and updating telephone numbersacross service providers is shown in accordance with an illustrativeembodiment. The process shown in FIG. 3 may be implemented in acommunication device, such as, for example, communication device 200 inFIGS. 2A and 2B.

The process begins when a user using the communication device manuallydials a telephone number on a keypad, such as keypad 204 in FIG. 2A(step 302). Alternatively, the communication device may use a telephonenumber verification unit, such as telephone number verification unit 228in FIG. 2B, to automatically dial a telephone number from a contact listin a storage device, such as storage unit 218 in FIG. 2B, during, forexample, non-peak cellular telephone SP network hours on a predeterminedperiodic basis in the background. Subsequent to the user manuallydialing or the communication device automatically dialing a telephonenumber in step 302, the communication device makes a determination as towhether the user enabled an automatic telephone number verificationunit, such as telephone number verification unit 228 in FIG. 2B (step304).

If the user did not enable the automatic telephone number verificationunit, no output of step 304, then the process proceeds to step 314 wherethe communication device connects to the telephone number as dialed. Ifthe user did enable the automatic telephone number verification unit,yes output of step 304, then the communication device makes adetermination as to whether the contact name in a central repository,such as storage 180 in FIG. 1, associated with the dialed number matchesthe contact name in the storage unit associated with the dialed number(step 306).

If the contact name in the central repository matches the contact namein the storage unit, yes output of step 306, then the communicationdevice makes a determination as to whether the user enabled aconfirmation to continue dialing sequence function (step 308). If theuser did not enable the confirmation to continue dialing sequencefunction, no output of step 308, then the process proceeds to step 314where the communication device connects to the telephone number asdialed. If the user did enable the confirmation to continue dialingsequence function, yes output of step 308, then the communication deviceprompts the user using a display screen, such as display 202 in FIG. 2A,for confirmation to continue the dialing sequence (step 310).

After prompting the user for confirmation to continue the dialingsequence in step 310, the communication device makes a determination asto whether the communication device receives user confirmation (step312). If the communication device receives user confirmation to continuethe dialing sequence, yes output of step 312, then the communicationdevice connects to the telephone number as dialed (step 314). If thecommunication device does not receive user confirmation to continue thedialing sequence, no output of step 312, then the communication deviceterminates the dialing sequence (step 316). The process terminatesthereafter.

Returning now to step 306, if the contact name in the central repositorydoes not match the contact name in the storage unit, no output of step306, then the communication device makes a determination as to whetherthe stored telephone number associated with the contact name within thestorage unit is more recent than the central repository telephone numberassociated with the contact name by comparing timestamps (step 318). Forexample, the user or communication device actually dials the correcttelephone number for the desired contact name in step 302, but thestored contact name for the dialed telephone number in the storage unitis not an “exact match” or a “strong indication” of a match to thestored contact name for the dialed telephone number in the centralrepository. Alternatively, the user or communication device actuallydials an incorrect telephone number for the desired contact name in step302, so the stored contact name for the dialed telephone number in thestorage unit will not match the stored contact name for the dialedtelephone number in the central repository. Consequently, thecommunication device makes a determination in step 318 as to whether thestored telephone number associated with the contact name within thestorage unit is more recent than the central repository telephone numberassociated with the contact name by comparing timestamps. In bothexamples above, the timestamp in the storage unit for the dialedtelephone number is more recent than the timestamp in the centralrepository because the telephone number in the central repository,whether correct or incorrect for the desired contact, was stored in thecentral repository prior to the time the telephone number was stored inthe storage unit manually by the user or automatically by thecommunication device. However, it should be noted that in anotherillustrative embodiment, the communication device may perform step 318prior to step 306.

If the stored telephone number associated with the contact name withinthe storage unit is more recent than the central repository telephonenumber, yes output of step 318, then the process returns to step 308where the communication device makes a determination as to whether theuser enabled the confirmation to continue dialing sequence function. Ifthe stored telephone number associated with the contact name within thestorage unit is not more recent than the central repository telephonenumber, no output of step 318, then the communication device makes adetermination as to whether the central repository indicates a telephonenumber change for the associated contact name (step 320). The centralrepository may, for example, use a flag or bit to indicate that thetelephone number for the associated contact name has been changed.

If the central repository does not indicate a telephone number changefor the associated contact name, no output of step 320, then the processreturns to step 308 where the communication device makes a determinationas to whether the user enabled the confirmation to continue dialingsequence function. If the central repository does indicate a telephonenumber change for the associated contact name, yes output of step 320,then the communication device queries the central repository for the newtelephone number and routes to dial the new number (step 322).Subsequent to querying the central repository for the new telephonenumber and routing to dial the new number in step 322, the communicationdevice makes a determination as to whether the new telephone number iscurrently in service (step 324).

If the new telephone number is not in service, no output of step 324,then the communication device sends the user an alert message via thedisplay screen (step 326) and the process terminates thereafter. If thenew telephone number is in service, yes output of step 324, then thecommunication device makes a determination as to whether the userenabled an automatic update function (step 328). The automatic updatefunction automatically updates out-of-date user data, such as, forexample, an out-of-date dialed telephone number for an associatedcontact name, within the storage unit to correspond with the centralrepository data. If the user did not enable the automatic updatefunction, no output of step 328, then the process returns to step 308where the communication device makes a determination as to whether theuser enabled the confirmation to continue dialing sequence function. Ifthe user did enable the automatic update function, yes output of step328, then the communication device automatically updates the user datawithin the storage unit (step 330). After automatically updating theuser data within the storage unit in step 330, the process once againreturns to step 308.

Thus, illustrative embodiments provide a computer implemented method,system, and computer usable program code for automatically verifying andupdating a telephone number across service providers by providing acentral repository. The invention can take the form of an entirelyhardware embodiment, an entirely software embodiment or an embodimentcontaining both hardware and software elements. In a preferredembodiment, the invention is implemented in software, which includes butis not limited to firmware, resident software, microcode, etc.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any tangibleapparatus that can contain or store the program for use by or inconnection with the instruction execution system, apparatus, or device.

The medium can be an electronic, magnetic, optical, or semiconductorsystem (or apparatus or device). Examples of a computer-readable mediuminclude a semiconductor or solid state memory, magnetic tape, aremovable computer diskette, a random access memory (RAM), a ROM, arigid magnetic disk, and an optical disk. Current examples of opticaldisks include compact disk-read only memory (CD-ROM), compactdisk-read/write (CD-R/W) and DVD.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem and Ethernet cards are just a few of thecurrently available types of network adapters.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

1. A computer implemented method in a communication device forautomatically verifying and updating a telephone number across serviceproviders, the computer implemented method comprising: responsive to atelephone number within a plurality of telephone numbers stored in astorage device being automatically dialed into a central repository by atelephone number verification unit in a cellular telephone duringnon-peak cellular telephone service provider network hours on apredetermined periodic basis in the background when the cellulartelephone is not in use, wherein, the verification unit when enabled canonly connect the cellular telephone to the central repository,determining, by the telephone number verification unit in the cellulartelephone, if the central repository indicates that a new telephonenumber is associated with the dialed telephone number, wherein thecentral repository stores data from a plurality of databases for aplurality of different cellular telephone service providers, and whereinthe central repository is synchronized with the plurality of databasesfor the plurality of different cellular telephone service providers;responsive to the central repository indicating that a new telephonenumber is associated with the dialed telephone number, querying, by thetelephone number verification unit in the cellular telephone, thecentral repository for the new telephone number; and updating, by thetelephone number verification unit in the cellular telephone, thestorage device with the new telephone number.
 2. The computerimplemented method of claim 1, further comprising: sending, by thecellular telephone, an alert message via a display to a user of thecellular telephone.
 3. The computer implemented method of claim 1,wherein the storage device stores user data, and wherein the user dataincludes contact names, telephone numbers, e-mail addresses, and instantmessaging screen names, and wherein the user data is included within oneor more contact lists, and wherein the one or more contact lists areautomatically forwarded to a new cellular telephone service providerwhen the user switches to the new cellular telephone service providerfrom a previous cellular telephone service provider.
 4. The computerimplemented method of claim 1, wherein the central repository is locatedat a remote site.
 5. A computer usable storage medium storing computerusable program code when executed by a processor cause the processor toautomatically verify and update a telephone number, the computer usablestorage medium comprising: computer usable program code configured todetermine, by a telephone number verification unit in a cellulartelephone, if a central repository indicates that a new telephone numberis associated with a dialed telephone number in response to a telephonenumber within a plurality of telephone numbers stored in a storagedevice being automatically dialed into the central repository by thetelephone number verification unit in the cellular telephone duringnon-peak cellular telephone service provider network hours on apredetermined periodic basis in the background when the cellulartelephone is not in use, wherein, the verification unit when enabled canonly connect the cellular telephone to the central repository, andwherein the central repository includes data from a plurality ofdatabases for a plurality of different cellular telephone serviceproviders, and wherein the central repository is synchronized with theplurality of databases for the plurality of different cellular telephoneservice providers; computer usable program code configured to query, bythe telephone number verification unit in the cellular telephone, thecentral repository for the new telephone number in response to thecentral repository indicating that a new telephone number is associatedwith the dialed telephone number; and computer usable program codeconfigured to update, by telephone number verification unit in thecellular telephone, the storage device with the new telephone number. 6.The computer usable storage medium of claim 5, further comprising:computer usable program code configured to send, by the cellulartelephone, an alert message via a display to a user of the cellulartelephone.
 7. The computer usable storage medium of claim 5, wherein thestorage device stores user data, and wherein the user data includescontact names, telephone numbers, e-mail addresses, and instantmessaging screen names, and wherein the user data is included within oneor more contact lists, and wherein the one or more contact lists areautomatically forwarded to a new cellular telephone service providerwhen the user switches to the new cellular telephone service providerfrom a previous cellular telephone service provider.
 8. The computerusable storage medium of claim 5, wherein the central repository islocated at a remote site.
 9. A data processing system for automaticallyverifying and updating a telephone number across service providers, thedata processing system comprising: a bus; a storage device connected tothe bus, wherein the storage device stores instructions; and a processordevice connected to the bus, wherein the processor device executes theinstructions to determine, by a telephone number verification unit in acellular telephone, if a central repository indicates that a newtelephone number is associated with the dialed telephone number inresponse to a telephone number within a plurality of telephone numbersstored in a storage device being automatically dialed into the centralrepository by the telephone number verification unit in the cellulartelephone during non-peak cellular telephone service provider networkhours on a predetermined periodic basis in the background when thecellular telephone is not in use, wherein, the verification unit whenenabled can only connect the cellular telephone to the centralrepository, and wherein the central repository includes data from aplurality of databases for a plurality of different cellular telephoneservice providers, and wherein the central repository is synchronizedwith the plurality of databases for the plurality of different cellulartelephone service providers; query, by the telephone number verificationunit in the cellular telephone, the central repository for the newtelephone number in response to the central repository indicating that anew telephone number is associated with the dialed telephone number; andupdate, by the telephone number verification unit in the cellulartelephone, the storage device with the new telephone number.
 10. Thedata processing system of claim 9, wherein the processor device executesfurther instructions to send an alert message via a display to a user ofthe cellular telephone.
 11. The data processing system of claim 9,wherein the storage device stores user data, and wherein the user dataincludes contact names, telephone numbers, e-mail addresses, and instantmessaging screen names, and wherein the user data is included within oneor more contact lists, and wherein the one or more contact lists areautomatically forwarded to a new cellular telephone service providerwhen the user switches to the new cellular telephone service providerfrom a previous cellular telephone service provider.
 12. The dataprocessing system of claim 9, wherein the central repository is locatedat a remote site.